<?php
/**
 * TinyCatPHP 极简、快速、创新、易用、高性能的PHP应用开发框架
 * User: CnTaiGe <hst042@163.com>
 * Date: 2017/11/8
 */

namespace TinyCatPHP\libs\db;
interface DBInterface
{
    /**
     * 获取最后查询的sql
     * @return mixed
     */
    public function getSql();

    /**
     * 设置表
     * @param $table
     * @return DBInterface
     */
    public function setTable($table);

    /**
     * 插入数据
     * @param string $table
     * @param array $data
     * @return mixed
     */
    public function insert($data, $table = '');

    /**
     * 批量插入数据
     * @param $datas
     * @param string $table
     * @return mixed
     */
    public function insertMany($datas, $table = '');

    /**
     * 查询数据
     * @param string|array $sql 原生sql语句
     * @param $values
     * @return mixed
     */
    public function query($sql, $values = []);

    /**
     * 执行sql语句 删除、添加、更新
     * @param $sql
     * @return mixed
     */
    public function execute($sql);

    /**
     * 更新数据
     * @param $where
     * @param $data
     * @param string $table
     * @return mixed
     */
    public function update($data, $where, $table = '');

    /**
     * 删除数据
     * @param $where
     * @param string $table
     * @param array $values
     * @return mixed
     */
    public function delete($where, array $values = [], $table = '');

    /**
     * 启动事务
     * @return bool
     */
    public function begintrans();

    /**
     * 提交事务
     * @return bool
     */
    public function commit();

    /**
     * 回滚事务
     * @return bool
     */
    public function rollback();

    /**
     * @param string $where 查条件参数
     * @param $table
     * @return int 返回的数量
     */
    public function count($where = '', $table = '');

}